package com.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.VtePreventive;
import com.demo.response.Result;

/**
 * vte诊断评估表 服务类
 * @author zm
 * @since 2020-12
 */
public interface IVtePreventiveService extends IService<VtePreventive> {

    /**
     * 新增vte诊断评估
     * @param vtePreventive     实体对象
     */
    Integer addVtePreventive(VtePreventive vtePreventive) throws Exception;

    /**
     * 更新vte诊断评估
     * @param vtePreventive     实体对象
     * @return
     */
    Result updateVtePreventive(VtePreventive vtePreventive) throws Exception;

    /**
     * 删除vte诊断评估
     * @param vtePreventiveId       VTE诊断评估ID
     * @param deletedUserId         删除人ID
     * @return
     */
    Result deleteVtePreventive(Integer vtePreventiveId,Integer deletedUserId);

    /**
     * vte诊断评估列表
     * @param pageNumber            页码
     * @param pageSize              大小
     * @param vtePreventiveId       VTE诊断评估ID
     * @param patientId             病患ID
     * @return
     */
    Result vtePreventiveList(Integer pageNumber,Integer pageSize,Integer vtePreventiveId,Integer patientId);

    /**
     * 护士签字---复核评估消息,需要护士评估后签字再发送消息
     * @param preventiveType            评估类型（1.外科  2.内科）
     * @param patientId                 患者ID
     * @param vtePreventiveId           VTE评估主键ID
     * @param riskConfirmUserId         签字用户ID
     * @param preventiveRiskRank        风险评估层级
     * @param preventiveRiskScore       风险评估得分
     */
    void nurseSignature(Integer preventiveType,Integer patientId,Integer vtePreventiveId,Integer riskConfirmUserId,Integer preventiveRiskRank,Integer preventiveRiskScore,String userPass) throws Exception;

    /**
     * 医生签字
     * @param patientId
     * @param vtePreventiveId      VTE评估主键ID
     * @param signUserId           签字人ID
     */
     void doctorsSignature(Integer patientId,Integer vtePreventiveId,Integer signUserId,String userPass) throws Exception;

    Result getVteDeptSnRanking(String orderType, Integer topNumber) throws Exception;

    Result getVteBleedDeptSnRanking(String orderType, Integer topNumber) throws Exception;

    Result getVtePreventiveInterval() throws Exception;
}
